package entity

import "gin/model"

// Users 用户表结构
type Users struct {
	Id           int64  `json:"id"`
	UserLogin    string `json:"userLogin"`    // 账号
	UserNickname string `json:"userNickName"` // 用户美名
	Avatar       string `json:"avatar"`       // 头像
	AvatarThumb  string `json:"avatarThumb"`  // 头像缩略图
	UserPass     string `json:"-"`            // 用户密码
	Mobile       string `json:"mobile"`       // 用户手机号
	UserEmail    string `json:"userEmail"`    // 用户邮箱
	Sex          int8   `json:"sex"`          // 用户性别: 0:保密 1:男 2:女
	Birthday     string `json:"birthday"`     // 生日
	Signature    string `json:"signature"`    // 用户个性签名
	Location     string `json:"location"`     // 所在地
	Source       string `json:"source"`       // 注册来源
	RegisterType int8   `json:"registerType"` // 注册方式1:手机；2邮箱
	PrivateKey   string `json:"-"`            // 密码密钥
	HardwareId   string `json:"hardwareId"`   // 硬件id
	UserStatus   int8   `json:"userStatus"`   // 用户状态 0：禁用； 1：正常  9:注销
	Tags         string `json:"tags"`         // 用户标签，以逗号分隔
	UserType     byte   `json:"userType"`     // 0 普通用户，1 admin
	Token        string `json:"-"`            // 授权token
	ExpireTime   int64  `json:"-"`            // token到期时间
}

// UsersAttention 用户关注表
type UsersAttention struct {
	Id       int64      `json:"id"`
	Uid      int64      `json:"uid"`               // 用户id
	FollowId int64      `json:"followId"`          // 被关注id
	CreateAt model.Time `json:"createAt" gorm:"-"` // 关注时间
}

type UsersAttentionList struct {
	UsersAttention
	UserNickname  string `json:"userNickName"`           // 用户美名
	Avatar        string `json:"avatar"`                 // 头像
	IsCorrelation bool   `json:"isCorrelation" gorm:"-"` //是否互关
}

// UsersNum 用户关注数量表
type UsersNum struct {
	Id           int64 `json:"id"`
	Uid          int64 `json:"uid"`          // 用户id
	FollowNum    int   `json:"followNum"`    // 用户被关注数量
	AttentionNum int   `json:"attentionNum"` // 用户关注数量
}
